package com.fufan.mtsaas.modules.task;

import com.fufan.mtsaas.cache.Cache;
import com.fufan.mtsaas.modules.base.company.dao.TCompanyPurchaseDao;
import com.fufan.mtsaas.modules.newtech.xjstech.service.XjsTechSvc;
import com.fufan.mtsaas.util.DateFormatTool;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.Objects;


@Slf4j
@Component
public class Task {
    @Autowired
    private TCompanyPurchaseDao tCompanyPurchaseDao;
    @Autowired
    private Cache cache;


    @Value("${sync.button}")
    private boolean button;

    @Value("${sync.baseinfo}")
    private boolean baseinfo;

    @Value("${sync.board}")
    private boolean board;

    @Autowired
    private XjsTechSvc targetService;
//
//    /** 定时同步购买记录 */
//    @Scheduled(cron = "0/10 * * * * ? ") // 每日凌晨三点进行
//    public void syncPurchaseRecord() {
//        tCompanyPurchaseDao.updatePurchaseStatusOpen(DateFormatTool.dateToString(DateFormatTool.DATE_FORMAT,new Date()));
//        tCompanyPurchaseDao.updatePurchaseStatusClose(DateFormatTool.dateToString(DateFormatTool.DATE_FORMAT,new Date()));
//    }
//
//    /** 定时同步购买记录 */
//    @Scheduled(cron = "0/3 * * * * ? ")         // 3秒更新一次
//    public void updateCompany() {
//        if(Objects.nonNull(baseinfo) && baseinfo){
//            try {
//                cache.updateCompanyMap();
//            }catch (Exception e){
//
//            }
//        }
//    }
//
//    /** 定时同步购买记录 */
//    @Scheduled(cron = "0/3 * * * * ? ") // 3秒更新一次
//    public void updateRoleMap() {
//        if(Objects.nonNull(baseinfo) && baseinfo) {
//            try {
//                cache.updateRoleMap();
//            } catch (Exception e) {
//
//            }
//        }
//    }

    /**
     * 每天同步需要年审的
     */
//    @Scheduled(cron = "0 0 8 * * ?")
    @Scheduled(cron = "0 */5 * * * ?") // 每5分钟更新一次
    public void syncPurchaseRecord() {
        // 获取新项目，需要审核的项目
        targetService.addData();

        //更新基础数据
        cache.updateData();
    }

}
